import query from './atom/db/query';

declare const action_id: string;
declare const session_id: string;
declare const spaceid: string;

interface Message {
	// todo
	[field: string]: any;
}

async function atom(msg: Message) {
	// 确定需求，该服务示例是为了获取数据

	// 1、确定表的systemid，一个项目也有可能有多个数据库
	const systemid = '@systemid';
	// 2、实例化query
	const { exec, prepare } = query(action_id, session_id, spaceid, systemid);
	// 3、确定要获取数据的表名，字段名，筛选条件，分页，排序
	// 字段名是表中要展示的字段
	// 筛选条件中的字段必须在表字段中
	prepare('@tname1', ['@fields'], msg);
	// 分页，分页大小和页码
	prepare('@tname2', ['@fields'], msg, 10, 1);
	// 排序，升序和降序，升序的字段名，降序的字段名
	prepare('@tname3', ['@fields'], msg, 10, 1, ['@fields'], ['@fields']);
	// 4、执行查询，返回的结果为结果数组，数组中的值和执行prepare中的表相对应
	const [table1, table2] = await exec();
	// 5、单表返回的结果也是数组

	// 6、可以一次获取多张表的数据，前提是多张表在同一个systemid下，若有多个systemid则从1再次开始
	return { [table1[0]._id]: table2[0]._id };
}
